"C++" + 1 + 2 + 3

来源:百度知道 编辑:UC知道 时间:2024/05/17 09:37:47
The expression "C++" + 1 + 2 + 3 evaluates to ________.
a. C++15
b. C++6
c. C++33
d. Illegal expression
e. C++123

麻烦教一下怎么做~
题目什么意思?"C++"不是char吗?为什么可以跟int相加
我也觉得是D
可是说我错了
还有 const char*是什么意思

e
后面的自动转换为字符串,这好像是Java和JavaScript里的用法

你这到底是不是 C++ 的题目呀? 如果是Java等的题目,就是转换为字符串然后再连接各个字符串。如果是 C++ 的题目,那么 "C++" 的类型是 const char * ,就是一个指针,指针可以被保存到一个整型变量当中去,但要经过强制类型转换 ,即 (int)"C++" + 1 + 2 + 3 ,这样就对了。
如果以上条件都不满足,那就是非法表达式,指针不会隐式转换为整型。

D

"C++"是字符串,const char*。 对它的指针算术加法 得到一个指向 "C++"这个字符串首地址加6的字符, 因为"C++"连末尾的'\0'一共占4个字符,所以再后面的就是非法值了

关于你的补充 "C++"不是char 是 const char*

另外 'C'才是char , char可以通过整型提升和整数运算

E
正解

b